$(document).ready(function(){
  
  if( $("#publish-lat").val() != 0.0 && $("#publish-lng").val() != 0.0){
    $("#publish-form").show();
    $("#location-error").hide();
  } else {
    get_coords();
  }
  
  $('.word_count').each(function() {
    var input = '#' + this.id;
    var count = input + '_count';
    $(count).show();
    word_count(input, count);
    $(this).keyup(function() { word_count(input, count) });
  });
  
  $("#publish-form").bind("submit", function(){
    var year = parseInt( $.trim( $("#publish-year").val() ) );
    if( $("#publish-title").val().length < 1){
      alert("Ingrese un título.");
      return false;
    }
    
    if( year > 2011 || year < 1900 || isNaN(year)){
      alert("Debe ingresar un año válido");
      return false;
    }
    
    $("#publish-year").val( year );
    
    return true;
  });
  
  //infield labels
  $(".infield label").inFieldLabels();
  
});

function get_coords(){
  var gps = navigator.geolocation;
  if (gps){
    gps.getCurrentPosition(successHandler);
  } else {
    if (window.google && google.gears){
      gps = google.gears.factory.create('beta.geolocation');
      gps.getCurrentPosition(function (position){
        successHandler({coords : position});
      }) ;
    }
  }
}

function successHandler(position){
  var lat = position.coords.latitude;
  var lng = position.coords.longitude;
  $("#publish-lng").val(lng);
  $("#publish-lat").val(lat);
  $('.word_count').val("");
  $('.word_count').removeAttr("disabled");
  $("#location-error").hide();
  $("#submit").hide();
  
  $("#publish-form").fadeIn();
  
}

function word_count(field, count) {

  var number = 0;
  var matches = $(field).val().match(/\b/g);
  if(matches) {
    number = matches.length/2;
  }
  words = number;
  if(number >= 200){
    $("#submit").fadeOut();
    $(count).text("Demasiadas palabras, intente usar 200 o menos.");
  } else if(number < 5){
    $("#submit").fadeOut();
    $(count).text("Muy pocas palabras. Debe usar al menos 5.");
  }
   else {
    $("#submit").fadeIn();
    $(count).text( number + (number != 1 ? ' ' : '') + ' palabras');
  }
}
